home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
nethack.lha
/
nethack-3.1
/
include
/
hack.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-17
|
4KB
|
205 lines
/* SCCS Id: @(#)hack.h 3.1 93/01/15 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
#ifndef HACK_H
#define HACK_H
#ifndef CONFIG_H
#include "config.h"
#endif
/* For debugging beta code. */
#ifdef BETA
#define Dpline pline
#endif
#define TELL 1
#define NOTELL 0
#define ON 1
#define OFF 0
#define BOLT_LIM 8 /* from this distance ranged attacks will be made */
#define MAX_CARR_CAP 1000 /* so that boulders can be heavier */
#ifndef __SASC_60
#ifdef NULL
#undef NULL
#endif /* NULL */
#define NULL ((char *)0)
#endif
#define DUMMY { 0 }
/* symbolic names for capacity levels */
#define UNENCUMBERED 0
#define SLT_ENCUMBER 1
#define MOD_ENCUMBER 2
#define HVY_ENCUMBER 3
#define EXT_ENCUMBER 4
#define OVERLOADED 5
/* this is the way the game ends */
/* if these are rearranged, the arrays in end.c will need to be changed */
#define DIED 0
#define CHOKING 1
#define POISONING 2
#define STARVING 3
#define DROWNING 4
#define BURNING 5
#define CRUSHING 6
#define STONING 7
#define GENOCIDED 8
#define PANICKED 9
#define TRICKED 10
#define QUIT 11
#define ESCAPED 12
#define ASCENDED 13
#ifndef DUNGEON_H /* includes align.h */
#include "dungeon.h"
#endif
#ifndef MONSYM_H
#include "monsym.h"
#endif
#ifndef MKROOM_H
#include "mkroom.h"
#endif
#ifndef OBJCLASS_H
#include "objclass.h"
#endif
#ifndef DECL_H
#include "decl.h"
#endif
extern coord bhitpos; /* place where thrown weapon falls to the ground */
/* types of calls to bhit() */
#define ZAPPED_WAND 0
#define THROWN_WEAPON 1
#define KICKED_WEAPON 2
#define FLASHED_LIGHT 3
#define INVIS_BEAM 4
#ifndef TRAP_H
#include "trap.h"
#endif
#ifndef FLAG_H
#include "flag.h"
#endif
#ifndef RM_H
#include "rm.h"
#endif
#ifndef VISION_H
#include "vision.h"
#endif
#ifndef DISPLAY_H
#include "display.h"
#endif
#ifndef WINTYPE_H
#include "wintype.h"
#endif
#ifndef ENGRAVE_H
#include "engrave.h"
#endif
#ifndef RECT_H
#include "rect.h"
#endif
#ifdef OVERLAY /* This doesn't belong here, but we have little choice */
#undef NDECL
#define NDECL(f) f()
#endif
#ifndef EXTERN_H
#include "extern.h"
#endif
#ifndef WINPROCS_H
#include "winprocs.h"
#endif
#if defined(OVERLAY) && !defined(MOVERLAY)
#include "wintty.h"
#undef WINTTY_H
#ifndef TRAMPOLI_H
#include "trampoli.h"
#endif
#undef EXTERN_H
#include "extern.h"
#endif /* OVERLAY */
#define NO_SPELL 0
/*** some utility macros ***/
#define yn(query) yn_function(query,ynchars, 'n')
#define ynq(query) yn_function(query,ynqchars, 'q')
#define ynaq(query) yn_function(query,ynaqchars, 'y')
#define nyaq(query) yn_function(query,ynaqchars, 'n')
#define nyNaq(query) yn_function(query,ynNaqchars, 'n')
#define ynNaq(query) yn_function(query,ynNaqchars, 'y')
#ifndef max
#define max(a,b) ((a) > (b) ? (a) : (b))
#endif
#ifndef min
#define min(x,y) ((x) < (y) ? (x) : (y))
#endif
#define plur(x) (((x) == 1) ? "" : "s")
#define ARM_BONUS(obj) (objects[(obj)->otyp].a_ac + (obj)->spe \
- min((int)(obj)->oeroded,objects[(obj)->otyp].a_ac))
#define makeknown(x) discover_object((x),TRUE)
#define distu(xx,yy) dist2((int)(xx),(int)(yy),(int)u.ux,(int)u.uy)
#define onlineu(xx,yy) online2((int)(xx),(int)(yy),(int)u.ux,(int)u.uy)
#define rn1(x,y) (rn2(x)+(y))
#ifndef MUSE
#define find_mac(m) ((m)->data->ac)
#endif
#if defined(MICRO)
#define getuid() 1
#define getlogin() (NULL)
#endif /* MICRO */
/* Macro for a few items that are only static if we're not overlaid.... */
#if defined(OVERLAY)
# define STATIC_PTR
#else
# define STATIC_PTR static
#endif
#if defined(OVERLAY)&&(defined(OVL0)||defined(OVL1)||defined(OVL2)||defined(OVL3)||defined(OVLB))
# define STATIC_DCL extern
# define STATIC_OVL
# ifdef OVLB
# define STATIC_VAR
# else
# define STATIC_VAR extern
# endif
#else /* !OVERLAY || (!OVL0 && !OVL1 && !OVL2 && !OVL3 && !OVLB) */
# define STATIC_DCL static
# define STATIC_OVL static
# define STATIC_VAR static
/* If not compiling an overlay, compile everything. */
# define OVL0 /* Highest priority */
# define OVL1
# define OVL2
# define OVL3 /* Lowest specified priority */
# define OVLB /* The base overlay segment */
#endif /* OVERLAY && (OVL0 || OVL1 || OVL2 || OVL3 || OVLB) */
#endif /* HACK_H */